﻿using System;
using System.Collections.Generic;
using System.Threading;

namespace WholeSlideImageViewer
{
    internal interface IMainWindowInteraction
    {
        void NavigateWebView(string url);
        string? ShowOpenFileDialog();
        string? ShowExportTiffFileDialog();
        string? ShowExportOptiFileDialog();
        void AlertServerLoadFailure();
        void AlertSlideLoadFailure(Exception? ex);
        ITiffOutputOptions? ShowTiffExportOptions();
        void ShowTiffExportDialog(IExportProgress progress, CancellationTokenSource cts);
        void AlertTiffExportFailure(Exception? ex);
        IOptiOutputOptions? ShowOptiExportOptions();
        void ShowOptiExportDialog(IExportProgress progress, CancellationTokenSource cts);
        void AlertOptiExportFailure(Exception? ex);
        void AlertShowPropertiesFailure(Exception? ex);
        void ShowPropertiesDialog(IEnumerable<KeyValuePair<string, string>> properties);
        void AlertShowAssociatedImagesFailure(Exception? ex);
        void ShowAssociatedImagesDialog(IEnumerable<string> names);
        void AlertAbout();
        void ApplicationExit();
    }
}
